package util

import (
	"slgw_web/serial/dto"

	models "openzbox.com/frame/echo/models/sl_gw01"
)

// var TPITV int64    //采集周期（秒)
// var Timeout int64  //采集超时时间
// var RetryCount int //重试次数

// 新版
var Serial []models.Serial
var Serial_Slave []models.Serial_Slave
var Serial_Slave_Detail []models.Serial_Slave_Detail
var DeviceInfo []models.DeviceInfo
var DeviceInfo_Concentrator []models.DeviceInfo_Concentrator
var DeviceInfo_Concentrator_User []models.DeviceInfo_Concentrator_User
var CollectDataList []dto.Serial_Slave_Detail_Cache
var Payload dto.MQTTSubscribeStr

var Task1 = "OHRT"               //心跳包的定时任务id
var Task2 = "SPITV"              //上报
var Task3 = "TPITV"              //采集
var Task4 = "TCP"                //TCP
var Task5 = "CollectWebsocket"   //采集推送数据
var Task6 = "GetTime"            //定时推送网关时间
var Task7 = "AddCollectDataList" //采集缓存到数据库
var Task8 = "MqttPublish"        //mqtt上行发布
var Task9 = "ModbusTCPS"         //modbus上行协议
var Task10 = "TaskSetTime"       //定时自动校时

var DeviceInfo_DetailList []models.DeviceInfo_Detail

// 错误日志
var ErrorLogList []models.ErrorLog

// 楼口数据
var LoukouData models.LouKouDataT
var Types models.Type
var Hards models.Hard

// 断点重传
var (
	//断点重传 0:不开启 1：开启
	IsRereported = 0
	ComType      = 2 //串口类型
	//是否需要检索数据库是否有上传失败的，如果失败就重传  true:需要
	RereportedTag []dto.RereportedTagList
)

// 开启失败跳过功能 ，需要跳过的集合
var ErrorBreakList []dto.ErrorBreakList

// 集中器发送数据格式
type Concentrator_SendData struct {
	Func int                    `json:"Func"`
	Dev  string                 `json:"Dev"`
	Data map[string]interface{} `json:"Data"`
}
type Concentrator_ReturnResult struct {
	Func int              `json:"func"`
	Dev  string           `json:"Dev"`
	Data ReturnResultData `json:"Data"`
}
type ReturnResultData struct {
	RS bool
	DT string
	FN string
}

// 集中器接收数据格式
var Concentrator_Data Concentrator_ReturnResult
var LoginPVer = "1.1" //登录包版本号

// MQTTS
//var MqttClient *mqtt.Client

// var Version = "20230901" //新增DLT645协议
// var Version = "20231009" //完善modbus采集
// var Version = "20231017"//单一线程采集modbusrtu
// var Version = "20231020" //新增多线程采集
// var Version = "20231023" //新增值类型选择，修改功能码1、2 接受方式
// var Version = "20231026" //新增上报管理多选添加，完善值类型导致的样式bug
// var Version = "20231030" //新增采集超时时间和重试次数功能
// var Version = "20231107" //新增西门子S7协议
// var Version = "20231108" //完善多线程采集问题
// var Version = "GW0X_20231110" //新增以太网 不配置 选项 完善西门子协议 连接断开重启 修改超时时间、次数 60
// var Version = "GW0X_20231113" //新增串口类型选择 版本号显示
// var Version = "GW0X_20231117" //modbus新增数据类型选择
// var Version = "GW0X_20231120" //tcp连接等待网络成功在运行
// var Version = "GW0X_20231127" //modbus新增采集错误跳过功能
// var Version = "GW0X_20231130" //新增断点续传，上报点位全部采集失败不上传，采集错误跳过后续采集功能
// var Version = "GW0X_20231202" //完善采集失败告警功能  新增网关时间显示 单个采集失败也不上报
// var Version = "GW0X_20231212" //新增mqtts_广东水利物联网平台 协议
// var Version = "GW0X_20231214" //完善科学计算值
// var Version = "GW0X_20231219" //新增mqtt_onenet 协议
// var Version = "GW0X_202312201" //上报多线程延时
// var Version = "GW0X_20231225" //新增设置不采集 设置不上报功能
// var Version = "GW0X_20231228" //上报数据 需要先等待上一个完成
// var Version = "GW0X_20240108" //modbus 新增采集48位数据,新增上行协议modebusTCP
// var Version = "GW0X_20240115" //完善权限问题
// var Version = "GW0X_20240117001" //新增38400
// var Version = "GW0X_20240122" //新增透传指令
// var Version = "GW0X_20240123" //完善at指令，新版远程升级命令
// var Version = "GW0X_20240124" //新增数据结构，每条指令间隔
// var Version = "GW0X_2024012602" //完善透传写串口数据,网关web日志弹窗间隔10分钟
// var Version = "GW0X_20240129001" //新增modbus采集错误，把采集参数提前并直接开始下一次采集
// var Version = "GW0X_2024013001" //新增采集成功输出日志
// var Version = "GW0X_20240819" //新增RTU日志(返回发送和接收的modbus 功能码3的数据)，完善采集错误的逻辑(修复了采集标记第二次无法改为错误的问题、重试次数0的打印日志问题)
var Version = "GW0X_20250212" //新增定时校时 默认一小时一次

var CMD_ICCID = "AT+CCID\r\n"
var CMD_IMEI = "AT+CGSN\r\n"
var CMD_CSQ = "AT+CSQ\r\n" //信号值
var ICCIDValue = "0000000000000000"
var IMEIValue = "0000000000000000"
var CSQValue = "0"
var HVer = "GW02"     //固件版本
var ATType = 2        //模组类型
var InitPassWord = "" //密令

var StopRestart = false                                              // 停止重连串口  true:禁止重连(串口占用中)
var TaskSetTimeUrl = "http://10.16.40.65:6106/api/Orther/GetNowTime" //"http://172.0.8.50:6106/api/Orther/GetNowTime" 本地
